複数のVPCにEC2インスタンスを接続する
ども、大瀧です。本日、Amazon EC2にアップデートがあり、複数のVPCにEC2インスタンスを接続できるようになりました。
試してみた様子をご紹介します。
AWS管理コンソールではENIが表示されない
手順としては、通常通りEC2インスタンスを作成してから、NIC(Network Interface Card)機能であるENIを追加で作成し、インスタンスに接続(アタッチ)する流れになります。 現時点(日本時間10/27 AM8:00)でAmazon EC2の管理コンソールでは、ENIの追加画面で異なるVPCのENIがリストに表示されません。
管理コンソールでは同一VPCのENIのみ一覧に表示される仕組みになっていて、今回のアップデートにはまだ対応していないのではと予想します。後日対応すると思われます。
代わりに今回はAWS CLIで、異なるVPCのENIをEC2インスタンスにアタッチしてみます。
$ aws ec2 attach-network-interface --device-index 1 --instance-id i-0123456789abcdef --network-interface-id eni-abcdef1234567890 eni-attach-0c7601c47c084b0e8 0 $
管理コンソールで見てみると...
確かに1行目のENIと2行目のENIで異なるVPC IDになっているのがわかりますね。
ちなみに、異なるアベイラビリティゾーンのENIをアタッチしようとしてみると...
$ aws ec2 attach-network-interface --device-index 2 --instance-id i-0b0e54020d534c67f --network-interface-id eni-0d3af77c5b9ccb851 An error occurred (InvalidParameterCombination) when calling the AttachNetworkInterface operation: You may not attach a network interface to an instance if they are not in the same availability zone $
こちらは「同じアベイラビリティゾーンではないENIをアタッチしようとしてるんじゃん?」とエラーになります。異なるVPCであっても同じアベイラビリティゾーンのENIでないとアタッチ不可という、従来通りの制約がありますね。
まとめ
EC2インスタンスを異なるVPCに接続するために、AWS CLIでENIを追加する様子をご紹介しました。複数ENIにはOSやアプリケーションのソフトウェア構成にいろいろ制約があるので、ドキュメントやDevelopersIOの記事を参考にして注意して構成する必要があります。いろいろ試してみましょう!